package com.shuoyue.adven.network;


import com.shuoyue.adven.entity.Adv;
import com.shuoyue.adven.entity.AppVersionInfo;
import com.shuoyue.adven.entity.ImpotentResult;
import com.shuoyue.adven.entity.PowerTimePlan;
import com.shuoyue.adven.entity.Property;
import com.shuoyue.adven.entity.Settings;
import com.shuoyue.adven.init.RegistContract;
import com.sm.appbase.net.base.BaseResult;

import java.util.HashMap;
import java.util.List;

import io.reactivex.Observable;
import retrofit2.http.Body;
import retrofit2.http.POST;
import retrofit2.http.QueryMap;

public interface APIService {
    /**
     * 注册设备
     */
    @POST("201001")
    Observable<BaseResult<RegistContract.RetistResult>> registDevices(@Body RegistContract.RegistParams code);

    /**
     * 加载商业广告
     */
    @POST("/202001")
    Observable<BaseResult<List<Adv>>> queryBusinessAdv();


    /**
     * 获取物业信息
     */
    @POST("/202003")
    Observable<BaseResult<Property>> getPropertyInfo();

    /**
     * 加载物业公告
     */
    @POST("/202004")
    Observable<BaseResult<List<Adv>>> queryPropertyAdv();

    /**
     * 加载插屏公告
     */
    @POST("/202002")
    Observable<BaseResult<ImpotentResult>> queryImpotentAdv();


    /**
     * 上报广告播放状态
     */
    @POST("/202005")
    Observable<BaseResult<String[]>> uploadBusinessPlayState(@Body HashMap<String, Integer> params);

    /**
     * 模拟心跳，标注一个消息ID，同一个ID只处理一次
     */
    @POST("xxx")
    Observable<BaseResult<String>> HeartBroken();

    /**
     * 当前设备计划开关机
     */
    @POST("xxx")
    Observable<BaseResult<String>> uploadPowerTask(@QueryMap HashMap<String, String> params);

    /**
     * 版本信息
     */
    @POST("/201002")
    Observable<BaseResult<AppVersionInfo>> checkVersion();

    /**
     * 配置信息
     */
    @POST("/201003")
    Observable<BaseResult<Settings>> getSettings();

    /**
     * 電源信息
     */
    @POST("/201004")
    Observable<BaseResult<List<PowerTimePlan>>> getPowerPlan();
}
